//字符串用' '或" "包起来
var a='\x41'
console.log(a)  //A，完全等同于A
var a1='\u4e2d\u6587'
console.log(a1)   //中文，完全等同于中文

var b="i'm ok"
console.log(b)  //i'm ok
var c='i\'m \"ok\"!'
console.log(c)  //i'm "ok"!  字符串里既包含 ' 也包含 " 时要用\对需要输出的引号进行转义

console.log('春眠不\n觉晓\n处处闻啼\n鸟')    // \n为换行
// `...` 这是一个多行字符串
console.log(`春眠不
觉晓                      
处处闻啼     
鸟`)
/*   春眠不
     觉晓
     处处闻啼
     鸟
以上1两种代码输出效果一样
 */
var name = '小明';
var age = '189';
var zong ='你好，' + name + ',你今年' + age + '岁了';
console.log(zong);      //在控制台输出
console.log(alert(zong));     //在页面输出
var name = '小明';
var age = '15';
console.log(`你好，${name},你今年${age}岁了！`)    //用``和${}在控制台输出

var s ='Hello, world!'
console.log(s.length);   //输出长度13
console.log(s[0]);       //H,输出索引
console.log(s[6]);       //空格
console.log(s[7]);       //w
console.log(s[12]);      //!
console.log(s[13]);      //超出索引，不会报错且输出underfined

//注意：字符串是不可变的，如果对某个字符串进行赋值，不会报错也不会有任何改变
var w ='Text';
w[0]='X';  //对字符串赋值
alert(w);   //Text  窗口弹出，仍为Text

var q='Hello';
console.log(q.toUpperCase());   //HELLO  全部变为大写

var e='Hello';
console.log(e.toLowerCase());   //hello   全部变为小写

//indexOf()会搜索指定字符串出现的位置
var t='hello world';
console.log(t.indexOf('world'));  //6
console.log(t.indexOf('World'));  //没有找到位置，返回-1


//substring
var j='Hello,ljy!'
console.log(j.substring(0,5));  //Hello   从索引0开始到5，不包括5
console.log(j.substring(4));   //o,ljy!  从索引4开始到结束